<?PHP
session_start();
session_register('SafeCode');
$type = 'gif';
$width= 100;
$height= 30;
header("Content-type: image/".$type);
srand((double)microtime()*1000000);
$randval = randStr(4,"");
if($type!='gif' && function_exists('imagecreatetruecolor')) {
    $im = @imagecreatetruecolor($width,$height);
}else {
    $im = @imagecreate($width,$height);
}
$r = Array(225,211,255,223);
$g = Array(225,236,237,215);
$b = Array(225,236,166,125);

$key = rand(0,3);

$backColor = ImageColorAllocate($im,$r[$key],$g[$key],$b[$key]);
$borderColor = ImageColorAllocate($im, 0, 0, 0);
$pointColor = ImageColorAllocate($im, 255, 170, 255);

@imagefilledrectangle($im, 0, 0, $width - 1, $height - 1, $backColor);
@imagerectangle($im, 0, 0, $width-1, $height-1, $borderColor);
$stringColor = ImageColorAllocate($im, 255,51,153);

for($i=0;$i<=100;$i++) {
    $pointX = rand(2,$width-2);
    $pointY = rand(2,$height-2);
    @imagesetpixel($im, $pointX, $pointY, $pointColor);
}

@imagestring($im, 5, 5, 1, $randval, $stringColor);
////////////////////////////////////////// 
///$font = "Cataclysmic.ttf";
////imagettftext($im, 20, 0, 10, 25, $stringColor, $font, $randval);
//////////////////////////////////////
$ImageFun='Image'.$type;
$ImageFun($im);
@ImageDestroy($im);
$_SESSION['SafeCode'] = strtolower($randval);
//��������ַ�
function randStr($len=6,$format='ALL') {
    switch($format) {
        case 'ALL':
            $chars='ABCDEFGHJKLMNPQRTUVWXYZabcdefghijkmnpqrstuvwxyz23456789'; break;
        case 'CHAR':
            $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; break;
        case 'NUMBER':
            $chars='0123456789'; break;
        default :
            $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
            break;
    }
    $string="";
    while(strlen($string)<$len)
        $string.=substr($chars,(mt_rand()%strlen($chars)),1);
    return $string;
}
?>
